# 基于Ubuntu 22.04镜像
FROM ubuntu:22.04

# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive
ENV DISPLAY=:99
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64
ENV PATH=$JAVA_HOME/bin:$PATH
ENV VNC_PORT=5900

# 配置国内apt源（中科大源，支持ARM64）
RUN echo "# 中科大Ubuntu镜像源" > /etc/apt/sources.list && \
    echo "deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse" >> /etc/apt/sources.list

# 更新包列表并安装基础依赖
RUN apt-get update && apt-get install -y \
    # Java运行时环境（完整版本，包含AWT）
    openjdk-17-jdk \
    # X11相关库
    libx11-6 \
    libxext6 \
    libxi6 \
    libxtst6 \
    libxrender1 \
    # 基础工具
    curl \
    wget \
    unzip \
    # 清理缓存
    && rm -rf /var/lib/apt/lists/*

# 安装图形环境
RUN apt-get update && apt-get install -y \
    # 虚拟显示器
    xvfb \
    x11vnc \
    # 轻量级桌面环境
    fluxbox \
    xterm \
    # 图形工具
    scrot \
    # 网络工具
    net-tools \
    fonts-dejavu-core \
    # 音频支持
    pulseaudio \
    && rm -rf /var/lib/apt/lists/*

# 安装Wine
RUN apt-get update && apt-get install -y wine winetricks && rm -rf /var/lib/apt/lists/*

# 创建工作目录
WORKDIR /app

# 复制本地构建的JAR文件
COPY target/vjoyxy-1.0-SNAPSHOT.jar app.jar

# 创建游戏目录和脚本目录
RUN mkdir -p /app/games /app/scripts /app/screenshots /app/logs

# 复制启动脚本
COPY docker/start.sh /app/start.sh
RUN chmod +x /app/start.sh

# 暴露VNC端口（可配置）
EXPOSE $VNC_PORT

# 设置启动命令
CMD ["/app/start.sh"] 